package com.ftg.learn.chapter16;

/**
 * 编译型语言
 *  先编译后运行  javac java JIT(半编译半运行)  cpu 100  1 memory 100  1 disk
 * 解译型语言
 *  编译一部分执行一部分.
 *
 * --异常
 *                   throwable
 *  error(错误)(不可逆)如硬件错误       exception（异常）(捕获|处理)
 *
 *                  checkedexception(编译异常|javac)  runtimeexception(运行时异常|java)
 *  --区别
 *
 *  --分类
 *  - throws : 抛出 不做任何处理. jvm
 *          ，分隔
 *  - throw : 手工异常
 *  - try catch  : 异常  捕获处理器
 *      -- try with resources (自动关闭流 - jdbc - 节少内存)
 *      -- try catch finallly
 *
 * @author KangJx
 * @date 2021/8/2
 */
public class LearnException {

    public static int abc(int t){
        return t+=1;
    }

    /**
     * 1.6 - 1.8
     * @return
     */
    public static int testmethod(){
        //jdk 1.8
        int a = 1;
        try{
            System.out.println("try");
           return a++;
        }catch(ArithmeticException e){
            System.out.println("catch");
            return  a++;
        }finally{
            System.out.println("finally");
            return  a++;
        }
    }


    public static int add(int x,int y){
        return x+ y;
    }

    /**
     * 多异常格式 问题
     * @param x
     * @param y
     * @return
     */
    public static int addivd(int x,int y){
        try{
            Class.forName("abc");
            return x / y;
            //语法叫什么？
        }catch(ArithmeticException | ClassNotFoundException a){
            System.err.println("运算出错了1 ");
        }finally{
            System.out.println("----");
        }
        return -1;
        //单线程同步: 小猛子 --- 结束 李英 开始 --- 面包
        //线程异步:
    }

    public static void main(String[] args) {

        // 包装类 : int(基本类型)  - Integer(包装类)   : 自动打包 | 拆装箱
        // short - Short
        //byte - Byte
        //float Float
        //double - Double
        //long Long
        //char - Character
        //boolean Boolean

        System.out.println(testmethod());

        System.out.println(abc(13));
        System.out.println("-->");
    }

//
//    /**
//     * throws 抛出异常不处理
//     * -- try catch finlly。。。
//     * 能抛子类不抛父类
//     * 留给调用者 ...
//     * main jvm 调用
//     * @param args
//     */
//    public static void main(String[] args) throws ClassNotFoundException,NullPointerException{
//
//        Class.forName("com.ftg.lkjx");
//        System.out.println("===>");
//
//    }


}
